## set集合增删改查(可变序列)
# set集合 元素不可重复 且 无序！

# ●set集合的创建
s1 = {34, '张三', 43, True, 34}
print(s1, type(s1))

print('ab' in s1)       # False 元素再set集合中不存在
print('ab' not in s1)   # True 元素再set集合中存在

s2 = set({34, '张三', 43, True, 34})
print(s2, type(s2))

# 使用list列表作为set集合的数据
s3 = set([34, '张三', 43, True, 34])
print(s3, type(s3))

# 使用元组作为set集合的数据
s4 = set((34, '张三', 43, True, 34))
print(s4, type(s4))

# 使用字符串作为set集合的数据
s5 = set('python')
print(s5, type(s5)) # {'o', 'n', 't', 'p', 'y', 'h'} <class 'set'>

# 创建一个空set集合
s6 = set()
print(s6, type(s6))

# 使用range生成set集合数据
s7 = set(range(6))
print(s7, type(s7))


# ●set集合生成表达式
ss1 = { item*2 for item in range(6)}
print('set集合生成表达式：', ss1)  # set集合生成表达式： {0, 2, 4, 6, 8, 10}


# ●set集合新增
s8 = set({"lili", 34})

# add() 新增一个元素
s8.add('WangWu')
print(s8)

# update() 新增多个元素
# update() 新增字典类型数据
s8.update({True, False})
print(s8)
# update() 新增list类型数据
s8.update(list(['asdf', 345.54]))
print(s8)
# update() 新增元组类型数据
s8.update(tuple((53, 54)))
print(s8)


# ●set集合删除元素
s9 = set((34, '张三', 43, True, 34))

# remove() 删除一个元素，注意删除的元素不存在时 报错！！：KeyError: '张三1'
# s9.remove('张三1')

# discard() 删除一个元素，当删除元素不存在时，不会报错！！
s9.discard('张三1')
print(s9)

# clear() 清空set集合容器数据；
s9.clear()

# pop() 删除一个任意元素；注意：当set集合中时空的执行pop() 报错！！
# s9.pop()
# print(s9)

